草庐IT

Ruby File 类和方法

全部标签

c# - 将字符串列表转换为单个连接字符串的最快方法?

我有一些生成字符串列表的LINQ代码,如下所示:vardata=fromainsomeOtherListorderbyaselectFunctionThatReturnsString(a);如何将该字符串列表转换为一个大的串联字符串?假设数据有这些条目:"Some""resulting""datahere."我应该得到一个如下所示的字符串:"Someresultingdatahere."我怎样才能快速做到这一点?我想过这个:StringBuildersb=newStringBuilder();data.ToList().ForEach(s=>sb.Append(s));stringre

c# - C# 中的虚拟方法或事件

我目前正在编写一个小的C#库来简化实现小的物理模拟/实验。主要组件是一个SimulationForm,它在内部运行一个定时器循环并向用户隐藏样板代码。实验本身将通过三种方法定义:Init()(初始化一切)Render(Graphicsg)(渲染当前模拟状态)Move(doubledt)(dt秒的移动实验)我只是想知道让用户实现这些功能的更好选择是什么:1)被继承形式覆盖的虚方法protectedvirtualvoidInit(){}...或2)事件publiceventEventHandlerMove=......编辑:请注意,方法无论如何都不应该抽象。事实上,还有更多,但没有需要实现

c# - 找不到方法 : 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'

这个问题在这里已经有了答案:Methodnotfound'VoidNewtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)(3个答案)关闭8年前。我有一个ASP.netMVC应用程序,它使用由xamarin应用程序共享的可移植类库。当我的Web应用程序现在启动时,它会抛出此错误:Methodnotfound:'VoidNewtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerial

C#,编写更长的方法还是更短的方法?

我对此有两种相互矛盾的看法。一些消息来源说应该有更少的小方法来减少方法调用,但其他一些消息来源说编写更短的方法有利于让JIT进行优化。那么,哪一方是正确的? 最佳答案 在大多数情况下,实际进行方法调用的开销是无关紧要的。您永远不需要担心它,除非您可以清楚地识别出需要重新审视问题的问题(您不会)。更重要的是您的代码要简单、可读、模块化、可维护和可修改。方法应该做一件事,只做一件事,并将子事情委托(delegate)给其他例程。这意味着您的方法应该尽可能短,但不能更短。与试图超越编译器或运行时相比,通过拥有不易出错和错误的代码,您将看到

c# - Websocket 的 ReceiveAsync 方法不等待整个消息

我正在通过websocket接收JSON。至少:我是部分的。使用在线websocket服务,我收到完整的JSON响应(所有HTML标记都被忽略)。当我查看在控制台中收到的JSON时,我可以看到HTML标记(在调试期间使用HTML查看器查看它会删除HTML)但它突然结束(数据不完整)。我的缓冲区有足够的空间,我正在使用async-await来(据说)等待整个响应进入,然后再继续。privateasyncTaskReceive(){varbuffer=newbyte[4096*20];while(_socket.State==WebSocketState.Open){varresponse

c# - 你能覆盖私有(private)虚拟方法吗?

我认为你可以,而我的同事认为你不能! 最佳答案 您甚至不能声明私有(private)虚拟方法。唯一有意义的情况是你有:publicclassOuter{privatevirtualvoidFoo(){}publicclassNested:Outer{privateoverridevoidFoo(){}}}...这是类型可以访问其父级私有(private)成员的唯一场景。然而,这仍然是被禁止的:Test.cs(7,31):errorCS0621:'Outer.Nested.Foo()':virtualorabstractmembers

c# - List<DateTime> 上的 Any() 方法未按预期工作

我正在winforms中使用.net4.6(这里的代码来自测试控制台应用程序)有一次我有一个DateTime列表,我需要弄清楚这个列表是否包含特定日期。为此,我尝试在列表中使用Any()。即使列表确实包含所需的日期,Any()也只会返回false。以下是示例代码,它们也具有相同的行为。因此,如果我能对这段代码有所了解,我想它也会对我的实际代码有所帮助。ListdateTimeList=newList();DateTimedateNow=DateTime.Now;DateTimedate=newDateTime(dateNow.Year,dateNow.Month,dateNow.Day

c# - 在反射方法调用中访问网络共享

我们有一个访问网络共享的方法。该方法在直接调用时工作正常,但在通过反射调用时我们会得到一个System.IO.IOException。用户上下文似乎对反射(reflect)的代码不可用(请参阅下面的堆栈跟踪)。有办法避免这种情况吗?System.Reflection.TargetInvocationException:Exceptionhasbeenthrownbythetargetofaninvocation.--->System.IO.IOException:Logonfailure:unknownusernameorbadpassword.atSystem.IO.__Error.

c# - 在代码中从 .rdlc 导出 PDF 时,如何提高 LocalReport.Render 方法的性能?

我想在代码级别呈现大型非图形报告(数千页),从.rdlc文件中省略只会阻塞浏览器的ReportViewer控件。当我测试呈现一个大约2000页的报告时,Microsoft.Reporting.WebForms.LocalReport.Render方法需要大约半小时才能完成,这被认为是糟糕的用户体验。是否有任何技巧或替代解决方案来提高渲染性能:在代码中,重新设计.rdlc文件,或在其他地方,例如,只是增加硬件?示例代码:LocalReportlocalReport=newLocalReport();localReport.ReportPath=Server.MapPath("~/repo

c# - Visual Studio 中是否有一种方法可以轻松获取限定类型名称?

我正在寻找用于在VisualStudio中获取对象的程序集限定类型名称的扩展/过程。我知道您可以编写一个快速控制台应用程序来输出它,但发现它是一个笨拙的过程。理想情况下,我希望能够右键单击类型名称,并可以选择将其程序集限定名称复制到剪贴板,以便粘贴到我的DI容器的配置文件中。 最佳答案 在较新版本的ReSharper中,您可以使用ReSharper/Edit/CopyFully-qualifiedname/SourcebrowserURItoclipboard菜单选项。 关于c#-Vis